package com.burges.net.dataStream.windows.windowsFunction;

import org.apache.flink.api.common.functions.AbstractRichFunction;
import org.apache.flink.api.common.state.KeyedStateStore;
import org.apache.flink.streaming.api.windowing.windows.Window;
import org.apache.flink.util.Collector;
import org.apache.flink.util.OutputTag;

import org.apache.flink.streaming.api.functions.windowing.ProcessWindowFunction.Context;

import java.io.Serializable;

/**
 * 创建人    BurgessLee
 * 创建时间   2020/1/27
 * 描述    查看该类源码org.apache.flink.streaming.api.functions.windowing.ProcessWindowFunction
 */
public abstract class ProcessWindowFunctionNote<IN, OUT, KEY, W extends Window> extends AbstractRichFunction {

//    //评估窗口并且定义窗口输出的元素
//    public abstract void process(KEY key, Context ctx, Iterable<IN> vals, Collector<OUT> out) throws Exception;
//
//    //定义清楚每个窗口计算结束后中间撞见的逻辑
//    public void clear(Context ctx) throws Exception{
//
//    }
//
//    //定义包含窗口元数据的上下文
//    public abstract Context implements Serializable{
//
//        //返回窗口当前的处理时间
//        public abstract W window();
//
//        //返回窗口当前的处理时间
//        public abstract long currentProcessingTime();
//
//        //返回每个窗口的中间状态
//        public abstract KeyedStateStore windowState();
//
//        ///返回每个key对应的状态
//        public abstract KeyedStateStore globalState();
//
//        //根据OutputTag输出数据
//        public  abstract <X> void output(OutputTag<X> outputTag, X value);
//    }

}
